package cn.iocoder.yudao.module.social.convert.content;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.social.api.content.dto.ContentReqDTO;
import cn.iocoder.yudao.module.social.api.content.dto.ContentRespDTO;
import cn.iocoder.yudao.module.social.controller.admin.content.vo.ContentCreateReqVO;
import cn.iocoder.yudao.module.social.controller.admin.content.vo.ContentRespVO;
import cn.iocoder.yudao.module.social.controller.admin.content.vo.ContentUpdateReqVO;
import cn.iocoder.yudao.module.social.dal.dataobject.content.ContentDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 内容 Convert
 *
 * @author 芋道源码
 */
@Mapper
public interface ContentConvert {

    ContentConvert INSTANCE = Mappers.getMapper(ContentConvert.class);

    @Mapping(target = "id", ignore = true)
    ContentDO convert(ContentCreateReqVO bean);

    ContentDO convert(ContentUpdateReqVO bean);

    ContentRespVO convert(ContentDO bean);

    List<ContentRespVO> convertList(List<ContentDO> list);

    PageResult<ContentRespVO> convertPage(PageResult<ContentDO> page);

    // API 转换方法
    ContentRespDTO convertApi(ContentDO bean);

    List<ContentRespDTO> convertApiList(List<ContentDO> list);

    ContentCreateReqVO convertToCreateReqVO(ContentReqDTO bean);

    ContentUpdateReqVO convertToUpdateReqVO(ContentReqDTO bean);

}
